#include "辅助类.h"
#include "imgui.h"
#include "图片调用.h"

extern 绘制 绘制;
static bool 悬浮窗 = false;
static bool 悬浮球 = true;
static bool 自瞄控件 = false;
static bool 自瞄初始化 = false;
static int ListPage = 0;
static int ColorSettings = 1;
static int style_idx = 2;
ImVec2 Pos2;
ImVec2 windowSize,windowSize_max;
static bool IsBall = false;
static bool 窗口状态 = false;
extern int dygl;
DIR *dir;
struct dirent *entry;

ImU32 c_背景 = IM_COL32(35, 41, 46, 255); // 深色背景
ImU32 c_文本 = IM_COL32(255, 255, 255, 255); // 白色文本
ImU32 c_按钮 = IM_COL32(47, 54, 60, 255); // 按钮背景
ImU32 c_高亮 = IM_COL32(218, 177, 35, 255); // 高亮颜色

void CardPanel(const char* title, const ImVec2& size, const ImVec4& bgColor, float cornerRadius,float padding, const std::function<void()>& contentFunction) {
ImGui::PushStyleColor(ImGuiCol_ChildBg, bgColor);


ImGui::PushStyleVar(ImGuiStyleVar_ChildRounding, cornerRadius);
ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(padding, padding));
ImGui::BeginChild(title, size, true);
if (contentFunction) {
contentFunction();
}
ImGui::EndChild();
ImGui::PopStyleColor();
ImGui::PopStyleVar();
}


void 绘制背景图(TextureInfo textureInfo,ImVec2 center, float size)
{
  ImGui::SetCursorPos({0, 180});
  ImDrawList *draw_list = ImGui::GetWindowDrawList();
  draw_list->AddImage(textureInfo.textureId,{center.x - size / 2, center.y - size / 2},{center.x + size / 2, center.y + size / 2});
}

void 布局::绘制悬浮窗()
{
  drawBegin();
  if(绘制.按钮.绘制){
      绘制.运行绘制();
  }
  
      if (绘制.自瞄.自瞄控件) {
        ImGui::SetNextWindowSize({200, 200});
        if (ImGui::Begin("自瞄控件", &自瞄控件, ImGuiWindowFlags_NoBackground | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollbar))
        {
            auto Pos = ImGui::GetWindowPos();
            
            static bool isMouseDown = false;
            static bool wasMousePressed = false;
            static bool isTe = false;
            static ImVec2 mousePressPos;
            bool mouseDown = ImGui::IsMouseDown(ImGuiMouseButton_Left);
            bool windowHovered = ImGui::IsWindowHovered();
            
            if (mouseDown &&!isMouseDown && windowHovered && ImGui::IsMouseHoveringRect(Pos, {Pos.x + 100, Pos.y + 100}))
            {
                isMouseDown = true;
                wasMousePressed = true;
                mousePressPos = ImGui::GetMousePos();
            }
            else if (!mouseDown && isMouseDown && wasMousePressed)
            {
                ImVec2 mouseReleasePos = ImGui::GetMousePos();
                if (mousePressPos.x == mouseReleasePos.x && mousePressPos.y == mouseReleasePos.y)
                {
                    isTe =!isTe;
                }
                
                isMouseDown = false;
                wasMousePressed = false;
            }
            
            if (isTe)
            {
                绘制.自瞄.初始化 = true;
                ImGui::GetWindowDrawList()->AddImage(手持图片[4].textureId, {Pos.x + 20, Pos.y + 20}, {Pos.x + 120, Pos.y + 120});
            }
            else
            {
                绘制.自瞄.初始化 = false;
                ImGui::GetWindowDrawList()->AddImage(手持图片[3].textureId, {Pos.x + 20, Pos.y + 20}, {Pos.x + 120, Pos.y + 120});
            }
        }
        ImGui::End();
    }
    
  
  if (悬浮球) {
        ImGui::SetNextWindowSize({150, 150});
        if (ImGui::Begin("悬浮图片", &悬浮球, ImGuiWindowFlags_NoBackground | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollbar))
        {
            // 获取窗口宽高以及位置相关逻辑
            绘制.winWidth = ImGui::GetWindowWidth();
            绘制.winHeith = ImGui::GetWindowHeight();
            if (窗口状态) {
                ImGui::SetWindowPos("悬浮图片",绘制.Pos,ImGuiCond_Always);
                窗口状态 = false;
            }
            绘制.Pos = ImGui::GetWindowPos();
            ImGui::GetWindowDrawList()->AddImage(手持图片[60].textureId, {绘制.Pos.x + 20, 绘制.Pos.y + 20}, {绘制.Pos.x + 120, 绘制.Pos.y + 120});

            static bool isDragging = false;
            static ImVec2 lastMousePos;  // 记录上一次鼠标位置，用于计算偏移量

            if (ImGui::IsItemActive()) {
                if (!isDragging) {
                    isDragging = true;
                    Pos2 = ImGui::GetWindowPos();
                    lastMousePos = ImGui::GetMousePos();
                } else {
                    // 获取当前鼠标位置
                    ImVec2 currentMousePos = ImGui::GetMousePos();
                    // 计算位置偏移量
                    ImVec2 offset = ImVec2(currentMousePos.x - lastMousePos.x, currentMousePos.y - lastMousePos.y);
                    // 更新窗口位置
                    ImGui::SetWindowPos(ImVec2(绘制.Pos.x + offset.x, 绘制.Pos.y + offset.y));
                    绘制.Pos = ImGui::GetWindowPos();
                    lastMousePos = currentMousePos;
                }
            } else if (isDragging) {
                isDragging = false;
                if(Pos2.x == ImGui::GetWindowPos().x && Pos2.y == ImGui::GetWindowPos().y) {
                    悬浮球 = false;
                    悬浮窗 = true;
                    窗口状态 = true;
                    IsBall = true;
                    ImGui::SetWindowPos(绘制.悬浮窗标题,绘制.Pos,ImGuiCond_Always);
                }
            }
        }
        ImGui::End();
    }
  
           if (悬浮窗) {
        if (ImGui::Begin("三级头", NULL, ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoBackground))
        {
        
            // 设置窗口的 Alpha 值为 0.0f（完全透明）
            ImGui::SetNextWindowBgAlpha(0.0f);
            //------------------------------------------------------------------------------------------------------------------------------------------//
            ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(0.0f, 0.0f, 0.0f, 1.0f)); // 红色
            //------------------------------------------------------------------------------------------------------------------------------------------//

            ImGui::GetStyle().FrameRounding = 50.0f;   // 设置控件边框的圆角为10像素
            ImGui::GetStyle().GrabRounding = 50.0f;    // 设置控件抓取的圆角为10像素
            ImGui::SetNextWindowBgAlpha(0.0f); // 设置窗口的背景透明度为 0.5（50% 不透明）

            //------------------------------------------------------------------------------------------------------------------------------------------//

            CardPanel("Card3", ImVec2(1330, 820), ImColor(0.9f, 0.9f, 0.9f, 0.8f), 20,20, [&]() {
                // 按钮的颜色样式
                ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(0.0f, 0.0f, 0.0f, 1.0f)); // 白色文本

                if (ImGui::BeginChild("##左侧菜单标题", ImVec2(0, 120), true, ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NavFlattened));
                ImGui::Image(手持图片[60].textureId,ImVec2(80,80)); 
                ImGui::SameLine();//补齐         
                if (ImGui::Button("绘制区域", ImVec2(150, 80))) {
                    ListPage = 0;
                }
                ImGui::SameLine();//并列
                if (ImGui::Button("自瞄区域", ImVec2(150, 80))) {
                    ListPage = 4;
                }
                ImGui::SameLine();//并列
                if (ImGui::Button("调试参数", ImVec2(150, 80))) {
                    ListPage = 5;
                }
                ImGui::SameLine();//并列
                if (ImGui::Button("颜色区域", ImVec2(150, 80))) {
                    ListPage = 1;
                }
                ImGui::SameLine();//并列
                if (ImGui::Button("物资区域", ImVec2(150, 80))) {
                    ListPage = 2;
                }
                ImGui::SameLine();//并列
                if (ImGui::Button("设置区域", ImVec2(150, 80))) {
                    ListPage = 3;
                }
                
                ImGui::SameLine();//并列
                if (ImGui::Button("缩小", ImVec2(120, 80))) {
                    悬浮窗 = false;
                    窗口状态 = false;
                    IsBall = false;
                    悬浮球 = false;
                }
            });
            ImGui::PopStyleColor(3); 
            ImGui::PopStyleColor();
            ImGui::EndChild();

//------------------------------------------------------------------------------------------------------------------------------------------//

ImGui::SameLine(+180.0f);

CardPanel("Card3", ImVec2(0, 0), ImColor(0.9f, 0.9f, 0.9f, 0.8f), 20,20, [&]() {

// 按钮的颜色样式
ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(0.0f, 0.0f, 0.0f, 1.0f)); // 白色文本

if (ImGui::BeginChild("##主菜单", ImVec2(0, 0), false, ImGuiWindowFlags_NoScrollbar))
{
switch (ListPage) {
case 0: {
CardPanel("Card3", ImVec2(0, 650), ImColor(0.0f, 0.0f, 0.0f, 0.0f), 20,20, [&]() {
            
            
                if (ImGui::Button("开始冒险 (初始化)"))
              {
              绘制.初始化绘制("com.tencent.tmgp.pubgmhd", abs_ScreenX, abs_ScreenY);  // 再进行获取游戏数据的初始化绘制操作
              }
              else
              {
              绘制.按钮.绘制 = true;
              }                 
              ImGui::SameLine();//补齐
    			if (ImGui::Button("结束冒险 (结束)"))
    			{
    			  exit(1);				
    			}			   
              ImGui::M_SwitchButton("人数", &绘制.按钮.人数);
              ImGui::SameLine();//补齐
              ImGui::M_SwitchButton("方框", &绘制.按钮.方框);
              ImGui::SameLine();//补齐
              ImGui::M_SwitchButton("略机", &绘制.按钮.忽略人机);  
              ImGui::SameLine();//补齐
              ImGui::M_SwitchButton("血量", &绘制.按钮.血量);              
              ImGui::M_SwitchButton("手持", &绘制.按钮.手持);
              ImGui::SameLine();//补齐
              ImGui::M_SwitchButton("盒子", &绘制.按钮.盒子);
              ImGui::SameLine();//补齐
              ImGui::M_SwitchButton("空投", &绘制.按钮.空投);
              ImGui::SameLine();//补齐
              ImGui::M_SwitchButton("背敌", &绘制.按钮.背敌预警);  
          //    ImGui::SameLine();//补齐                                
           //   ImGui::M_SwitchButton("被瞄准预警", &绘制.按钮.被瞄);
           //   ImGui::SameLine();//补齐
              ImGui::M_SwitchButton("手雷预警", &绘制.按钮.手雷预警);      
              ImGui::SameLine();//补齐      
              ImGui::M_SwitchButton("距离", &绘制.按钮.距离);
              ImGui::SameLine();//补齐
              ImGui::M_SwitchButton("射线", &绘制.按钮.射线);
              ImGui::SameLine();//补齐
              ImGui::M_SwitchButton("名字", &绘制.按钮.名字);                          
              ImGui::M_SwitchButton("骨骼", &绘制.按钮.骨骼);
              ImGui::SameLine();//补齐
              ImGui::M_SwitchButton("车辆", &绘制.按钮.车辆);
              ImGui::SameLine();//补齐
              ImGui::M_SwitchButton("雷达", &绘制.按钮.雷达);
              ImGui::Combo("血条样式", &绘制.按钮.血条样式, "横\0数字\0圆\0");
              ImGui::SliderInt("观战过滤队伍", &dygl, 0, 100); 
              if (ImGui::CollapsingHeader("雷达位置"))
              {
                ImGui::SliderFloat("X轴位置", &绘制.按钮.雷达X,0.0f,2400.0f,"%.1f",1);
                ImGui::SliderFloat("Y轴位置", &绘制.按钮.雷达Y,0.0f,1080.0f,"%.1f",2);
                     }   
              if (ImGui::CollapsingHeader("触摸位置"))
              {
                ImGui::SliderFloat("X轴位置", &绘制.自瞄.触摸范围X,0.0f,2400.0f,"%.1f",1);
                ImGui::SliderFloat("Y轴位置", &绘制.自瞄.触摸范围Y,0.0f,1080.0f,"%.1f",2);
                     }                           
});
break;
}

//----------------------------------------------------------------------------------------------------------------------------------------
case 1: {
CardPanel("Card3", ImVec2(0, 650), ImColor(0.0f, 0.0f, 0.0f, 0.0f), 20,20, [&]() {

                static int ColorSettings = 1;
                ImGui::Text( "颜色配置" );
                ImGui::Combo("当前配置为 ：", &ColorSettings, "人机\0真人\0");
                
                if (ColorSettings == 1) {
                  ImGui::ColorEdit4( "方框颜色", 绘制.Colorset[0].方框颜色, ImGuiColorEditFlags_NoBorder | ImGuiColorEditFlags_NoTooltip | ImGuiColorEditFlags_DisplayHex );
                  ImGui::ColorEdit4( "射线颜色", 绘制.Colorset[0].射线颜色, ImGuiColorEditFlags_NoBorder | ImGuiColorEditFlags_NoTooltip | ImGuiColorEditFlags_DisplayHex );
                  ImGui::ColorEdit4( "骨骼颜色", 绘制.Colorset[0].骨骼颜色, ImGuiColorEditFlags_NoBorder | ImGuiColorEditFlags_NoTooltip | ImGuiColorEditFlags_DisplayHex );
                  
             //     ImGui::ColorEdit4( "血量颜色", 绘制.Colorset[0].血量颜色, ImGuiColorEditFlags_NoBorder | ImGuiColorEditFlags_NoTooltip | ImGuiColorEditFlags_DisplayHex );
             //     ImGui::ColorEdit4( "阵营颜色", 绘制.Colorset[0].阵营颜色, ImGuiColorEditFlags_NoBorder | ImGuiColorEditFlags_NoTooltip | ImGuiColorEditFlags_DisplayHex );
             //     ImGui::ColorEdit4( "距离颜色", 绘制.Colorset[0].距离颜色, ImGuiColorEditFlags_NoBorder | ImGuiColorEditFlags_NoTooltip | ImGuiColorEditFlags_DisplayHex );
            //      ImGui::ColorEdit4( "名称颜色", 绘制.Colorset[0].名称颜色, ImGuiColorEditFlags_NoBorder | ImGuiColorEditFlags_NoTooltip | ImGuiColorEditFlags_DisplayHex );
                }else {
                  ImGui::ColorEdit4( "方框颜色", 绘制.Colorset[1].方框颜色, ImGuiColorEditFlags_NoBorder | ImGuiColorEditFlags_NoTooltip | ImGuiColorEditFlags_DisplayHex );
                  ImGui::ColorEdit4( "射线颜色", 绘制.Colorset[1].射线颜色, ImGuiColorEditFlags_NoBorder | ImGuiColorEditFlags_NoTooltip | ImGuiColorEditFlags_DisplayHex );
                  ImGui::ColorEdit4( "骨骼颜色", 绘制.Colorset[1].骨骼颜色, ImGuiColorEditFlags_NoBorder | ImGuiColorEditFlags_NoTooltip | ImGuiColorEditFlags_DisplayHex );
          //        ImGui::ColorEdit4( "血量颜色", 绘制.Colorset[1].血量颜色, ImGuiColorEditFlags_NoBorder | ImGuiColorEditFlags_NoTooltip | ImGuiColorEditFlags_DisplayHex );
             //     ImGui::ColorEdit4( "阵营颜色", 绘制.Colorset[1].阵营颜色, ImGuiColorEditFlags_NoBorder | ImGuiColorEditFlags_NoTooltip | ImGuiColorEditFlags_DisplayHex );
           //       ImGui::ColorEdit4( "距离颜色", 绘制.Colorset[1].距离颜色, ImGuiColorEditFlags_NoBorder | ImGuiColorEditFlags_NoTooltip | ImGuiColorEditFlags_DisplayHex );
           //       ImGui::ColorEdit4( "名称颜色", 绘制.Colorset[1].名称颜色, ImGuiColorEditFlags_NoBorder | ImGuiColorEditFlags_NoTooltip | ImGuiColorEditFlags_DisplayHex );
                }

          ImGui::Text( "绘图粗细配置" );
          ImGui::SliderFloat( "方框粗细", &绘制.按钮.方框粗细, 0.1, 5, "%.1f" );
          ImGui::SliderFloat( "射线粗细", &绘制.按钮.射线粗细, 0.1, 5, "%.1f" );
          ImGui::SliderFloat( "骨骼粗细", &绘制.按钮.骨骼粗细, 0.1, 5, "%.1f" );
     
 });
break;
}         
 //------------------------------------------------------------------------------------------------------------------------------------------//
case 4: {
CardPanel("Card3", ImVec2(0, 650), ImColor(0, 0, 0, 0), 20,20, [&]() {
ImGui::Text(" 三级头ImGui温馨提示 { 演不演，决定走多远 }");
ImGui::M_SwitchButton( "自瞄开启", &绘制.自瞄.初始化);
ImGui::SameLine();
ImGui::M_SwitchButton( "自瞄按钮", &绘制.自瞄.自瞄控件);
ImGui::SameLine();
ImGui::M_SwitchButton( "触摸位置", &绘制.自瞄.触摸位置);
ImGui::SameLine();
ImGui::M_SwitchButton( "掉血自瞄", &绘制.自瞄.掉血自瞄);
//------------------------------------------------------------------------------------------------------------------------------------------//
ImGui::M_SwitchButton( "框内自瞄", &绘制.自瞄.框内自瞄);
ImGui::SameLine();
ImGui::M_SwitchButton( "狙击自瞄", &绘制.自瞄.狙击自瞄);
ImGui::SameLine();
ImGui::M_SwitchButton( "喷子自瞄", &绘制.自瞄.喷子自瞄);
ImGui::SameLine();
ImGui::M_SwitchButton( "动态自瞄", &绘制.自瞄.动态自瞄);
//ImGui::SameLine();
ImGui::M_SwitchButton( "隐藏自瞄圈", &绘制.自瞄.隐藏自瞄圈);
//------------------------------------------------------------------------------------------------------------------------------------------//
ImGui::SameLine();
ImGui::M_SwitchButton( "随机触摸点", &绘制.自瞄.随机触摸点);
ImGui::SameLine();
ImGui::M_SwitchButton( "准星射线", &绘制.自瞄.准星射线);
ImGui::SameLine();
ImGui::M_SwitchButton( "倒地不瞄", &绘制.自瞄.倒地不瞄);
ImGui::M_SwitchButton( "人机不瞄", &绘制.自瞄.人机不瞄);
ImGui::RadioButton("开火", &绘制.自瞄.自瞄条件, 0);
ImGui::SameLine();
ImGui::RadioButton("开镜", &绘制.自瞄.自瞄条件,1);
ImGui::SameLine();
ImGui::RadioButton("开火||开镜", &绘制.自瞄.自瞄条件, 2);
ImGui::Combo("自瞄优先", &绘制.自瞄.瞄准优先, "准星\0距离\0");
ImGui::Combo("瞄准部位", &绘制.自瞄.瞄准部位, "头部\0脖子\0胸部\0");
ImGui::SliderFloat("掉血自瞄数率", &绘制.自瞄.掉血自瞄数率, 5, 25, "%.0f" );
});
break;
}
//------------------------------------------------------------------------------------------------------------------------------------------//

case 5: {
CardPanel("Card3", ImVec2(0, 650), ImColor(0, 0, 0, 0), 20,20, [&]() {
ImGui::Spacing();
            ImGui::Text( "自瞄调节" );
            ImGui::SameLine();
            ImGui::TextDisabled("不懂点我");
            if (ImGui::BeginItemTooltip())
            {
              ImGui::PushTextWrapPos(ImGui::GetFontSize() * 35.0f);
              ImGui::TextUnformatted(
              "参数调节详细\n"
              "1.自瞄速度 增则慢 减则快\n"
              "2.压枪力度 增则下抬 减则上抬\n");
              ImGui::PopTextWrapPos();
              ImGui::EndTooltip();
            }
ImGui::RadioButton("喷子腰射锁定", &绘制.自瞄.喷子自瞄条件, 0);
ImGui::SameLine();
ImGui::RadioButton("喷子开镜锁定", &绘制.自瞄.喷子自瞄条件,1);
//------------------------------------------------------------------------------------------------------------------------------------------//

//------------------------------------------------------------------------------------------------------------------------------------------//
ImGui::Spacing();
ImGui::RadioButton("右边插头", &绘制.自瞄.充电口方向, 0);
ImGui::SameLine();
ImGui::RadioButton("左边插头", &绘制.自瞄.充电口方向, 1);

//------------------------------------------------------------------------------------------------------------------------------------------//
ImGui::SliderFloat( "自瞄圈大小", &绘制.自瞄.自瞄范围, 10, 350, "%.0f" );
ImGui::SliderFloat( "触摸范围", &绘制.自瞄.触摸范围, 5, 600, "%.0f" );
ImGui::SliderFloat( "自瞄速度", &绘制.自瞄.自瞄速度, 0.1, 30, "%.2f" );
//------------------------------------------------------------------------------------------------------------------------------------------//
ImGui::SliderFloat( "压枪力度", &绘制.自瞄.压枪力度, 0.1, 3.0, "%.2f" );
ImGui::SliderFloat( "预判速率", &绘制.自瞄.预判力度, 0.0, 2.0, "%.2f" );
ImGui::SliderFloat("趴下压枪", &绘制.自瞄.趴下位置调节, 0, 2, "%.2f" );
ImGui::SliderFloat( "腰射距离", &绘制.自瞄.腰射距离限制, 0.0, 50, "%.2f" );
ImGui::SliderFloat( "自瞄距离", &绘制.自瞄.自瞄距离限制, 0.0, 600, "%.2f" );
ImGui::SliderFloat("喷子距离", &绘制.自瞄.喷子距离限制, 0, 50, "%.0f" );
ImGui::SliderFloat("触控采样率", &绘制.自瞄.触摸采样率, 200, 1200, "%.0f" );

});
break;
}

//------------------------------------------------------------------------------------------------------------------------------------------//


   case 2: {
CardPanel("Card3", ImVec2(0, 650), ImColor(0.0f, 0.0f, 0.0f, 0.0f), 20,20, [&]() {
ImGui::Text("物资设置");
          ImGui::M_SwitchButton("初始化物资", &绘制.按钮.物资总开关);
          ImGui::SameLine();
          ImGui::M_SwitchButton("绘制金仓", &绘制.按钮.金仓);
          ImGui::SameLine();
          ImGui::M_SwitchButton("军事宝箱", &绘制.按钮.军事宝箱);
          ImGui::M_SwitchButton("海盗福利箱", &绘制.按钮.海盗福利箱);
          ImGui::SameLine();              
          ImGui::M_SwitchButton("绘制宝箱", &绘制.按钮.绘制宝箱);
          ImGui::SameLine();
          ImGui::M_SwitchButton("绘制药箱", &绘制.按钮.绘制药箱);
          ImGui::SameLine();
          ImGui::M_SwitchButton("绘制武器箱", &绘制.按钮.绘制武器箱);
          ImGui::Text("--会自动绘制出箱子对应的等级--");      
              
     if (ImGui::CollapsingHeader("信号枪绘制"))
       {
       ImGui::Checkbox("信号枪", &绘制.按钮.信号枪);
       ImGui::SameLine();
       ImGui::Checkbox("电竞信号枪", &绘制.按钮.电竞信号枪);
       ImGui::SameLine();
       ImGui::Checkbox("召回信号枪", &绘制.按钮.召回信号枪);
       ImGui::SameLine();
       ImGui::Checkbox("圣诞信号枪", &绘制.按钮.圣诞信号枪);
       ImGui::Checkbox("夏日信号枪", &绘制.按钮.夏日信号枪);
       ImGui::SameLine();
       ImGui::Checkbox("盔仔信号枪", &绘制.按钮.盔仔信号枪);       
       }
     if (ImGui::CollapsingHeader("步枪绘制"))
       {
       ImGui::Checkbox("蜜罐", &绘制.按钮.蜜罐);
       ImGui::SameLine();
       ImGui::Checkbox("M762", &绘制.按钮.M762);
       ImGui::SameLine();
       ImGui::Checkbox("VAL", &绘制.按钮.VAL);
       ImGui::SameLine();
       ImGui::Checkbox("G63C", &绘制.按钮.G63C);
       ImGui::Checkbox("Famas", &绘制.按钮.Famas);
       ImGui::SameLine();
       ImGui::Checkbox("DP28", &绘制.按钮.DP28);
       ImGui::SameLine();
       ImGui::Checkbox("狗砸", &绘制.按钮.狗砸);
       ImGui::SameLine();
       ImGui::Checkbox("AKM", &绘制.按钮.AKM);
       ImGui::Checkbox("QBZ", &绘制.按钮.QBZ);
       ImGui::SameLine();
       ImGui::Checkbox("MK47", &绘制.按钮.MK47);
       ImGui::SameLine();
       ImGui::Checkbox("AUG", &绘制.按钮.AUG);
       ImGui::SameLine();
       ImGui::Checkbox("M16A4", &绘制.按钮.M16A4);
       ImGui::Checkbox("SCAR", &绘制.按钮.SCAR);
       ImGui::SameLine();
       ImGui::Checkbox("M416", &绘制.按钮.M416);
       }
     if (ImGui::CollapsingHeader("狙击枪绘制"))
       {
       ImGui::Checkbox("十字弩", &绘制.按钮.十字弩);
       ImGui::SameLine();
       ImGui::Checkbox("AWM", &绘制.按钮.AWM);
       ImGui::SameLine();
       ImGui::Checkbox("98k", &绘制.按钮.kar98k);
       ImGui::SameLine();
       ImGui::Checkbox("M24", &绘制.按钮.M24);
       ImGui::Checkbox("Mini14", &绘制.按钮.Mini14);
       ImGui::SameLine();
       ImGui::Checkbox("Win94", &绘制.按钮.Win94);
       ImGui::SameLine();
       ImGui::Checkbox("SLR", &绘制.按钮.SLR);
       ImGui::SameLine();
       ImGui::Checkbox("AMR", &绘制.按钮.AMR);
       ImGui::Checkbox("M417", &绘制.按钮.M417);
       ImGui::SameLine();
       ImGui::Checkbox("MK20", &绘制.按钮.MK20);
       ImGui::SameLine();
       ImGui::Checkbox("MK12", &绘制.按钮.MK12);
       ImGui::SameLine();
       ImGui::Checkbox("QBU", &绘制.按钮.QBU);
       ImGui::Checkbox("SKS", &绘制.按钮.SKS);
       ImGui::SameLine();
       ImGui::Checkbox("MK14", &绘制.按钮.MK14);
       ImGui::SameLine();
       ImGui::Checkbox("M200", &绘制.按钮.M200);
       ImGui::SameLine();
       ImGui::Checkbox("莫辛纳甘", &绘制.按钮.莫辛纳甘);
       ImGui::Checkbox("爆炸猎弓", &绘制.按钮.爆炸猎弓);
       ImGui::SameLine();
       ImGui::Checkbox("VSS", &绘制.按钮.VSS);
       }
     if (ImGui::CollapsingHeader("重机枪绘制"))
       {
       ImGui::Checkbox("DP28", &绘制.按钮.DP28);
       ImGui::SameLine();
       ImGui::Checkbox("M249", &绘制.按钮.M249);
       ImGui::SameLine();
       ImGui::Checkbox("PKM", &绘制.按钮.PKM);
       ImGui::SameLine();
       ImGui::Checkbox("MG3", &绘制.按钮.MG3);      
       }
     if (ImGui::CollapsingHeader("冲锋枪绘制"))
       {
       ImGui::Checkbox("P90", &绘制.按钮.P90);
       ImGui::SameLine();
       ImGui::Checkbox("MP5K", &绘制.按钮.MP5K);
       ImGui::SameLine();
       ImGui::Checkbox("野牛", &绘制.按钮.野牛);
       ImGui::SameLine();
       ImGui::Checkbox("UMP9", &绘制.按钮.UMP9);
        ImGui::Checkbox("维克托", &绘制.按钮.维克托);
       ImGui::SameLine();
       ImGui::Checkbox("汤姆逊", &绘制.按钮.汤姆逊);
       ImGui::SameLine();
       ImGui::Checkbox("UZI", &绘制.按钮.UZI);   
       }
     if (ImGui::CollapsingHeader("散弹枪绘制"))
       {
       ImGui::Checkbox("S12K", &绘制.按钮.S12K);
       ImGui::SameLine();
       ImGui::Checkbox("S1897", &绘制.按钮.S1897);
       ImGui::SameLine();
       ImGui::Checkbox("双管猎枪", &绘制.按钮.双管猎枪);
       ImGui::SameLine();
       ImGui::Checkbox("DBS", &绘制.按钮.DBS);
        ImGui::Checkbox("SPAS", &绘制.按钮.SPAS);
       ImGui::SameLine();
       ImGui::Checkbox("AA12", &绘制.按钮.AA12);
       ImGui::SameLine();
       ImGui::Checkbox("短管散弹枪", &绘制.按钮.短管散弹枪);
       }
     if (ImGui::CollapsingHeader("手枪绘制"))
       {
       ImGui::Checkbox("R1895", &绘制.按钮.R1895);
       ImGui::SameLine();
       ImGui::Checkbox("R45双持", &绘制.按钮.R45双持);
       ImGui::SameLine();
       ImGui::Checkbox("沙漠之鹰", &绘制.按钮.沙漠之鹰);
       ImGui::SameLine();
       ImGui::Checkbox("TMP9", &绘制.按钮.TMP9);
        ImGui::Checkbox("蝎式手枪", &绘制.按钮.蝎式手枪);
       ImGui::SameLine();
       ImGui::Checkbox("P18C", &绘制.按钮.P18C);
       ImGui::SameLine();
       ImGui::Checkbox("R1911", &绘制.按钮.R1911);
       ImGui::SameLine();
       ImGui::Checkbox("P92", &绘制.按钮.P92);        
       }
     if (ImGui::CollapsingHeader("近战绘制"))
       {
       ImGui::Checkbox("平底锅", &绘制.按钮.平底锅);
       ImGui::SameLine();
       ImGui::Checkbox("镰刀", &绘制.按钮.镰刀);
       ImGui::SameLine();
       ImGui::Checkbox("撬棍", &绘制.按钮.撬棍);
       ImGui::SameLine();
       ImGui::Checkbox("大砍刀", &绘制.按钮.大砍刀);
       ImGui::Checkbox("盾牌", &绘制.按钮.盾牌);
       }
      if (ImGui::CollapsingHeader("投掷物绘制"))
       {
       ImGui::Checkbox("燃烧瓶", &绘制.按钮.燃烧瓶);
       ImGui::SameLine();
       ImGui::Checkbox("烟雾弹", &绘制.按钮.烟雾弹);
       ImGui::SameLine();
       ImGui::Checkbox("震爆弹", &绘制.按钮.震爆弹);
       ImGui::SameLine();
       ImGui::Checkbox("手榴弹", &绘制.按钮.手榴弹);
       ImGui::Checkbox("烟雾榴弹", &绘制.按钮.烟雾榴弹);
       }
      if (ImGui::CollapsingHeader("头·甲·包绘制"))
       {
       ImGui::Checkbox("一级甲", &绘制.按钮.一级甲);
       ImGui::SameLine();
       ImGui::Checkbox("二级甲", &绘制.按钮.二级甲);
       ImGui::SameLine();
       ImGui::Checkbox("三级甲", &绘制.按钮.三级甲);
       ImGui::SameLine();
       ImGui::Checkbox("一级头", &绘制.按钮.一级头);
       ImGui::Checkbox("二级头", &绘制.按钮.二级头);
       ImGui::SameLine();
       ImGui::Checkbox("三级头", &绘制.按钮.三级头);
       ImGui::SameLine();
       ImGui::Checkbox("一级包", &绘制.按钮.一级包);
       ImGui::SameLine();
       ImGui::Checkbox("二级包", &绘制.按钮.二级包);
       ImGui::Checkbox("三级包", &绘制.按钮.三级包);
       ImGui::SameLine();
       ImGui::Checkbox("吉利服", &绘制.按钮.吉利服);
       ImGui::SameLine();
       ImGui::Checkbox("吉利服1", &绘制.按钮.吉利服1);
       ImGui::SameLine();
       ImGui::Checkbox("汽油", &绘制.按钮.汽油);   
       }
      if (ImGui::CollapsingHeader("药品绘制"))
       {
       ImGui::Checkbox("医疗箱", &绘制.按钮.医疗箱);
       ImGui::SameLine();
       ImGui::Checkbox("急救包", &绘制.按钮.急救包);
       ImGui::SameLine();
       ImGui::Checkbox("绷带", &绘制.按钮.绷带);
       ImGui::SameLine();
       ImGui::Checkbox("可乐", &绘制.按钮.可乐);
        ImGui::Checkbox("肾上腺素", &绘制.按钮.肾上腺素);
       ImGui::SameLine();
       ImGui::Checkbox("止痛药", &绘制.按钮.止痛药);
       ImGui::SameLine();
       ImGui::Checkbox("自救器", &绘制.按钮.自救器);
       }
      if (ImGui::CollapsingHeader("子弹绘制"))
       {
       ImGui::Checkbox("马格南", &绘制.按钮.马格南);
       ImGui::SameLine();
       ImGui::Checkbox("7.62m", &绘制.按钮.A762);
       ImGui::SameLine();
       ImGui::Checkbox("5.56m", &绘制.按钮.A556);
       ImGui::SameLine();
       ImGui::Checkbox("9毫米", &绘制.按钮.A9毫米);
       ImGui::Checkbox("12口径", &绘制.按钮.A12口径);
       ImGui::SameLine();
       ImGui::Checkbox("45口径", &绘制.按钮.A45口径);
       ImGui::SameLine();
       ImGui::Checkbox("5.7M", &绘制.按钮.A57MM);
       ImGui::SameLine();
       ImGui::Checkbox("5.0口径", &绘制.按钮.A50口径);
       ImGui::Checkbox("信号枪子弹", &绘制.按钮.信号枪子弹);
       ImGui::SameLine();
       ImGui::Checkbox("箭矢", &绘制.按钮.箭矢);
       }
      if (ImGui::CollapsingHeader("配件绘制"))
       {
       ImGui::Checkbox("红点", &绘制.按钮.红点);
       ImGui::SameLine();
       ImGui::Checkbox("全息", &绘制.按钮.全息);
       ImGui::SameLine();
       ImGui::Checkbox("二倍镜", &绘制.按钮.二倍镜);
       ImGui::SameLine();
       ImGui::Checkbox("三倍镜", &绘制.按钮.三倍镜);
        ImGui::Checkbox("四倍镜", &绘制.按钮.四倍镜);
       ImGui::SameLine();
       ImGui::Checkbox("六倍镜", &绘制.按钮.六倍镜);
       ImGui::SameLine();
       ImGui::Checkbox("八倍镜", &绘制.按钮.八倍镜);
       ImGui::SameLine();
       ImGui::Checkbox("侧面镜", &绘制.按钮.侧面镜);
        ImGui::Checkbox("战术瞄准镜", &绘制.按钮.战术瞄准镜);
       ImGui::SameLine();
       ImGui::Checkbox("子弹袋", &绘制.按钮.子弹袋);
       ImGui::SameLine();
       ImGui::Checkbox("箭袋", &绘制.按钮.箭袋);
       ImGui::SameLine();
        ImGui::Checkbox("激光瞄准镜", &绘制.按钮.激光瞄准镜);
       ImGui::SameLine();
       ImGui::Checkbox("轻型握把", &绘制.按钮.轻型握把);
       ImGui::SameLine();
       ImGui::Checkbox("半载握把", &绘制.按钮.半载握把);
       ImGui::SameLine();
       ImGui::Checkbox("UZI枪托", &绘制.按钮.UZI枪托);
        ImGui::Checkbox("狙击枪托", &绘制.按钮.狙击枪托);
       ImGui::SameLine();
       ImGui::Checkbox("步枪枪托", &绘制.按钮.步枪枪托);
       ImGui::SameLine();
       ImGui::Checkbox("狙击补偿器", &绘制.按钮.狙击补偿器);
       ImGui::SameLine();
       ImGui::Checkbox("狙击枪消焰器", &绘制.按钮.狙击枪消焰器);
        ImGui::Checkbox("狙击枪消音器", &绘制.按钮.狙击枪消音器);
       ImGui::SameLine();
       ImGui::Checkbox("步枪消音器", &绘制.按钮.步枪消音器);
       ImGui::SameLine();
       ImGui::Checkbox("步枪补偿器", &绘制.按钮.步枪补偿器);
       ImGui::SameLine();
       ImGui::Checkbox("步枪消焰器", &绘制.按钮.步枪消焰器);
        ImGui::Checkbox("冲锋枪消音器", &绘制.按钮.冲锋枪消音器);
       ImGui::SameLine();
       ImGui::Checkbox("冲锋枪消焰器", &绘制.按钮.冲锋枪消焰器);
       ImGui::SameLine();
       ImGui::Checkbox("冲锋枪消焰器", &绘制.按钮.冲锋枪消焰器);
       ImGui::SameLine();
       ImGui::Checkbox("拇指握把", &绘制.按钮.拇指握把);
        ImGui::Checkbox("垂直握把", &绘制.按钮.垂直握把);
       ImGui::SameLine();
       ImGui::Checkbox("直角握把", &绘制.按钮.直角握把);
       ImGui::SameLine();
       ImGui::Checkbox("撞火枪托", &绘制.按钮.撞火枪托);
       ImGui::SameLine();
       ImGui::Checkbox("霰弹快速", &绘制.按钮.霰弹快速);
        ImGui::Checkbox("鸭嘴枪口", &绘制.按钮.鸭嘴枪口);
       ImGui::SameLine();
       ImGui::Checkbox("霰弹收束", &绘制.按钮.霰弹收束);
       ImGui::SameLine();
       ImGui::Checkbox("狙击枪快扩", &绘制.按钮.狙击枪快扩);
       ImGui::SameLine();
       ImGui::Checkbox("狙击枪扩容", &绘制.按钮.狙击枪扩容);
        ImGui::Checkbox("狙击枪快速", &绘制.按钮.狙击枪快速);
       ImGui::SameLine();
       ImGui::Checkbox("步枪快扩", &绘制.按钮.步枪快扩);
       ImGui::SameLine();
       ImGui::Checkbox("步枪扩容", &绘制.按钮.步枪扩容);
       ImGui::SameLine();
       ImGui::Checkbox("步枪快速", &绘制.按钮.步枪快速);
        ImGui::Checkbox("冲锋枪快扩", &绘制.按钮.冲锋枪快扩);
       ImGui::SameLine();
       ImGui::Checkbox("冲锋枪扩容", &绘制.按钮.冲锋枪扩容);
       ImGui::SameLine();
       ImGui::Checkbox("冲锋枪快速", &绘制.按钮.冲锋枪快速);
       ImGui::SameLine();
        ImGui::Checkbox("手枪快扩", &绘制.按钮.手枪快扩);
       ImGui::SameLine();
       ImGui::Checkbox("手枪快速", &绘制.按钮.手枪快速);
       ImGui::SameLine();
       ImGui::Checkbox("手枪扩容", &绘制.按钮.手枪扩容);       
       }     
  
  });
break;
}

case 3: {
CardPanel("Card3", ImVec2(0, 650), ImColor(0.0f, 0.0f, 0.0f, 0.0f), 20,20, [&]() {
ImGui::Spacing();
            if (ImGui::Button("保存当前配置")) {
            绘制.保存配置();
          }
          ImGui::SameLine();//补齐
          if (ImGui::Button("读取已存配置")) {
            绘制.读取配置();
          }        
          ImGui::Spacing();
          ImGui::Text( "绘制帧率选项" );
          ImGui::Spacing();
          if (ImGui::RadioButton("60HZ", &绘制.按钮.帧率选项, 0)){
            绘制.按钮.当前帧率 = 60;
          }
          ImGui::SameLine();
          if (ImGui::RadioButton("90HZ", &绘制.按钮.帧率选项,1)) {
            绘制.按钮.当前帧率 = 90;
          }
          if (ImGui::RadioButton("120HZ", &绘制.按钮.帧率选项,2)) {
            绘制.按钮.当前帧率 = 120;
          }
          ImGui::SameLine();
          if (ImGui::RadioButton("144HZ", &绘制.按钮.帧率选项,3)) {
            绘制.按钮.当前帧率 = 144;
          }

});
break;
}

break;
}

//------------------------------------------------------------------------------------------------------------------------------------------//
}
});
}

ImGui::EndChild();

绘制.winWidth = ImGui::GetWindowWidth()+222;
绘制.winHeith = ImGui::GetWindowHeight()+98;
g_window = ImGui::GetCurrentWindow();
}
//------------------------------------------------------------------------------------------------------------------------------------------//

    if (!悬浮窗) {
      //exit(0);
      悬浮球 = true;悬浮窗 = false;窗口状态 = true;IsBall = false;
      //windowSize_max = windowSize;
      ImGui::SetWindowPos("悬浮图片", 绘制.Pos, ImGuiCond_Always);
    }
  
  
  drawEnd();
}

void 布局::开启悬浮窗(){
  timer WindowDrawing;
  WindowDrawing.SetFps(120);
  WindowDrawing.AotuFPS_init();
  WindowDrawing.setAffinity();
  while(true){

    绘制悬浮窗();
    WindowDrawing.SetFps(绘制.按钮.当前帧率);
    WindowDrawing.AotuFPS();
    std::this_thread::sleep_for(1ms);
  }
}